package conf

import (
	"encoding/json"
	"fmt"
	"os"
)

var Cfg *config

// config 配置文件属性定义
type config struct {
	AppConf *appConf `json:"app"`
	DbConf  *dbConf  `json:"db"`
	RdsConf *rdsConf `json:"redis"`
}

// appConf 应用属性定义
type appConf struct {
	AppPort  string `json:"port"`
	FilePath string `json:"path"`
	FileUrl  string `json:"url"`
	LogPath  string `json:"logPath"`
	FontPath string `json:"fontPath"`
	ExprPath string `json:"exprPath"`
}

// dbConf 数据库属性定义
type dbConf struct {
	Usname string `json:"usname"`
	Passwd string `json:"passwd"`
	DbHost string `json:"host"`
	DbPort string `json:"port"`
	DbName string `json:"name"`
}

// rdsConf Redis属性定义
type rdsConf struct {
	Url string `json:"url"`
	Pwd string `json:"pwd"`
	Num int    `json:"num"`
}

// InitConf 初始化配置
func InitConf(path string) {
	// 读取文件
	bytes, err := os.ReadFile(path)
	if err != nil {
		panic("读取配置文件【" + path + "】失败。" + err.Error())
	}
	// 解析文件
	if err = json.Unmarshal(bytes, &Cfg); err != nil {
		panic("解析配置文件内容失败。" + err.Error())
	}
	fmt.Println("配置文件读取成功！")
}
